﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

using QLTTAN.BLL;
using QLTTAN.DTO;
namespace QLTTAN.Form
{
    public partial class frmDangNhap : DevExpress.XtraEditors.XtraForm
    {
        TaiKhoanBLL TK_BLL;

        public int MaQuyen = -1;
        public string username = "";
        public string phanquyen = "";

        public frmDangNhap()
        {
            InitializeComponent();
        }

        private void frmDangNhap_Load(object sender, EventArgs e)
        {
            TK_BLL = new TaiKhoanBLL();

            if (Properties.Settings.Default.Check == true)
            {
                txtTenTaiKhoan.Text = Properties.Settings.Default.Username;
                txtMatKhau.Text = Properties.Settings.Default.Password;
                checkBoxGhiNhoMK.Checked = true;
            }


            string connectionString = ConfigurationManager.ConnectionStrings["MyConnectString"].ConnectionString;

            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString);

            if(builder.InitialCatalog == "")
            {
                lblTenCSDL.Text = "Chưa có CSDL";
            }
            else
            {
                lblTenCSDL.Text = builder.InitialCatalog;
            }
        }

        private void SavePropertiesSettings()
        {
            if (checkBoxGhiNhoMK.Checked == true)
            {
                Properties.Settings.Default.Username = txtTenTaiKhoan.Text;
                Properties.Settings.Default.Password = txtMatKhau.Text;
            }

            Properties.Settings.Default.Check = checkBoxGhiNhoMK.Checked;
            Properties.Settings.Default.Save();
        }

        private void btnDangNhap_Click(object sender, EventArgs e)
        {
            string error = "";
            if (txtTenTaiKhoan.Text.Trim().Equals(""))
            {
                error += "Bạn chưa nhập tên tài khoản. \r\n";
            }
            if (txtMatKhau.Text.Trim().Equals(""))
            {
                error += "Bạn chưa nhập mật khẩu. \r\n";
            }
            if(lblTenCSDL.Text == "Chưa có CSDL")
            {
                error += "Bạn chưa chọn Cơ Sở Dữ Liệu để kết nối. \r\n";
            }

            if (!error.Equals(""))
            {
                XtraMessageBox.Show(error, "Thông báo!!!", MessageBoxButtons.OK);
                return;
            }

            TaiKhoanDTO TK_DTO = new TaiKhoanDTO();
            TK_DTO.UserName = txtTenTaiKhoan.Text.Trim();
            TK_DTO.PassWord = txtMatKhau.Text.Trim();

            try
            {
                DataTable dt = TK_BLL.TaiKhoan_Check(TK_DTO);

                if (dt.Rows.Count > 0)
                {
                    DataRow row = dt.Rows[0];

                    SavePropertiesSettings();
                    MaQuyen = int.Parse(row["MaQuyen"].ToString());
                    username = row["UserName"].ToString();
                    phanquyen = row["TenQuyen"].ToString();
                    this.Close();
                }
                else
                {
                    XtraMessageBox.Show("Bạn nhập sai tên đăng nhập hoặc mật khẩu.", "Thông báo!!!", MessageBoxButtons.OK);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông báo!!!", MessageBoxButtons.OK);
            }
        }


        private void linkCoSoDuLieu_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            frmCoSoDuLieu frmCSDL = new frmCoSoDuLieu();
            frmCSDL.ShowDialog();

            lblTenCSDL.Text = frmCSDL.TenCSDL;
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {           
            SavePropertiesSettings();
            Application.Exit();
        }

    }
}